昨天那篇教各位學會使用IFTTT結合Line,當時傳輸資料時是透過Line Notify的函式庫去做,但此次用IFTTT不用使用Line Notify的函式庫,那這邊會講解是如何做到這點的。
const char* host = "maker.ifttt.com";
第19行,IFTTT的網址位置
void loop(void)
{
// 量測間等待至少 2 秒
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
// 將最後讀取感測值的時間紀錄下來
previousMillis = currentMillis;
// 讀取溫度大約 250 微秒!
humidity = myAHT10.readHumidity(); // 讀取濕度(百分比)
temp = myAHT10.readTemperature(); // 讀取溫度(華氏)
// 檢查兩個值是否為空值
if (isnan(humidity) || isnan(temp)) {
Serial.println("Failed to read from myAHT10 sensor!");
return;
}
}
// 除錯用
tempe1="Temperature:"+String(temp)+"C";
humid1="Humidity:"+String(humidity)+"%";
Serial.println(tempe1);
Serial.println(humid1);
WiFiClient client;
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String getStr_line = "GET /trigger/Esp32sAHT10Line/with/key/cEf5MJB?value1="+tempe1+"&value2="+humid1+" HTTP/1.1\r\n"
+ "Host: " + host + "\r\n" + "User-Agent: BuildFailureDetectorESP32\r\n" + "Connection: close\r\n\r\n";
Serial.println(getStr_line);
client.print(getStr_line);
delay(100);
client.stop();
delay(60000); //每1分鐘送一次到Line Notify
}
第80行,他這行就是儲存等等要貼在瀏覽器的網址內容,內容中包含HTTP所需資料、溫溼度數值、傳遞給IFTTT的資訊、數值等資訊。
最後這些資訊會由84行做傳輸。
那上一張有提及85行的delay,原因是當網路狀況差時,84行無法及時傳完資料就會被86行關閉,所以透過調整85行delay拉長傳輸時間。
好了,這篇主要的地方在於80行那段傳輸資料,透過那段去讓Webhook執行程序,所以也可以自己試著貼網址到網址列上,看看是否可以執行,提示在Webhook的Documentation有一行可以使用,那此次就講到這樣囉,我們明天見囉~